#include<iostream>
#include<vector>
using namespace std;

//盛最多水的容器

int maxArea(vector<int> &height)
{
    // 定义两个左右指针
    int left = 0;
    int right = height.size() - 1;

    // 获取小的高度
    int min = height[left] < height[right] ? height[left] : height[right];

    // 求出当前容量假设为最大值
    int vmax = min * (right - left);

    // 左右两个指针向内移动，容器的宽度减少，想要获取更大的容量，只能找到大的高度
    // 也就是舍弃小的高度，移动找大的高度
    while (left < right)
    {
        if (height[left] < height[right])
        {
            left++;
        }
        else
        {
            right--;
        }

        min = height[left] < height[right] ? height[left] : height[right];

        int v = min * (right - left);

        if (v > vmax)
        {
            vmax = v;
        }
    }

    return vmax;
}

int main(){
    vector<int> height={1,8,6,2,5,4,8,3,7};
    int v=maxArea(height);
    cout << v;
    return 0;
}